package org.cxn.tools.commons.poi.excel;

import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.Font;

/**
 * Created by IntelliJ IDEA.
 * User: lenovo
 * Date: 11-12-19
 * Time: 上午11:16
 * To change this template use File | Settings | File Templates.
 */
public class MyHSSFFont {
    /**
     * 纪录一个字体样式
     */
    private Font font;

    /**
     * 加载一个字体样式
     * @param font
     * @return
     */
    public MyHSSFFont load(Font font){
        this.font = font;
        return this;
    }

    /**
     * 返回最新的字体样式
     * @return
     */
    public Font getFont(){
        return font;
    }

    /**
     * 设置表格标题的字体                              </br>
     *
     *
     * @param fontName         字体,比如宋体 黑体 隶属 </br>
     *
     * @param boldWeight        字体仔细              </br>
     *                          HSSFFont.BOLDWEIGHT_BOLD  </br>
     *
     * @param height           字体高度               </br>
     * @param color            字体颜色               </br>
     *                         HSSFFont.COLOR_RED  红的   </br>
     *                         HSSFFont.COLOR_NORMAL 正常的   </br>
     * @return
     */
    public final MyHSSFFont addExctlFont(String fontName,short boldWeight,short height,short color){
        font.setFontName(fontName);
        font.setBoldweight(boldWeight);
        font.setFontHeightInPoints(height);
        font.setColor(color);
        return this;
    }


    /**
     * 红色
     * @param font
     * @return
     */
    public final HSSFFont addColorRed(HSSFFont font){
        font.setColor(HSSFFont.COLOR_RED);
        return font;
    }











    private MyHSSFFont() {}
    /**
     * 类级的内部类,也就是静态的成员式内部类,该内部类的实例与外部类的实例
     * 没有绑定关系,而且只有被调用到才会装载,从而实现了延迟加载.
     */
    private static class SingletonHolder {
        /**
         * 静态初始化器,由JVM来保证线程安全
         */
        private static MyHSSFFont font = new MyHSSFFont();
    }

    public final static MyHSSFFont getInstance() {
        return SingletonHolder.font;
    }
}
